home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-05-01 | 41.3 KB | 2,145 lines | [TEXT/MPS ] |
- /************************************************************
-
- Created: Monday, Sept 23, 1991
- AFPSession.cp
- C++ Interface to the AppleTalk Filing Protocol
- M.Vierling
-
-
- Copyright Apple Computer, Inc. 1985-1991
- All rights reserved
-
- ************************************************************/
-
- #include <Types.h>
- #include <CType.h>
- #include <Errors.h>
- #include <String.h>
- #include <Strings.h>
- #include "AFPSession.h"
-
- typedef MPPParamBlock *MPPParamBlkPtr, **MPPParamBlkHdl; // CFront returns internal error: hased lookup if we don't typedef these - weird!
- typedef MPPparms *MPPparmsPtr, **MPPparmsHdl;
- typedef LAPparms *LAPparmsPtr, **LAPparmsHdl;
- typedef DDPparms *DDPparmsPtr, **DDPparmsHdl;
- typedef NBPparms *NBPparmsPtr, **NBPparmsHdl;
-
- #pragma segment AFPCall
-
- const unsigned short kMaxBufSize = 4096;
- const unsigned short kMinBufSize = 4;
-
- TAFPSession::TAFPSession()
- {
- this->Debug(0, "AFPSession constructor:");
-
- fCBStart = (Ptr)(new char[ kMaxBufSize ]);
- fRBStart = (Ptr)(new char[ kMaxBufSize ]);
-
- fCBptr = fCBStart;
- fRBptr = fRBStart;
-
- this->SetAFPVersion( "AFPVersion 2.1" );
-
- fPathDelimiter = ':';
- }
-
-
- OSErr TAFPSession::ISession( AddrBlock theAddress )
- {
- this->Debug(0, "ISession");
- this->SetAddress( theAddress );
- return this->IAFPCall();
- }
-
- TAFPSession::~TAFPSession()
- {
- this->Debug(0, "AFPSession destructor:");
- delete [] fCBStart;
- delete [] fRBStart;
- }
-
- void TAFPSession::SetAddress( AddrBlock theAddress )
- {
- fafpAddrBlock = theAddress;
- }
-
- AddrBlock TAFPSession::GetAddress()
- {
- return fafpAddrBlock;
- }
-
- inline OSErr TAFPSession::MakeAFPCall()
- {
- return this->DoCommand( fCBStart, fCBSize, fRBStart, fRBSize );
- }
-
- OSErr TAFPSession::GetError()
- {
- return fErrResult;
- }
-
- void TAFPSession::bytePush( Byte theByte )
- {
- *fCBptr = theByte;
- fCBptr++;
- fCBSize = fCBptr - fCBStart;
- }
-
- void TAFPSession::shortPush( short theShort )
- {
- *(short *)fCBptr = theShort;
- fCBptr += 2;
- fCBSize = fCBptr - fCBStart;
- }
-
- void TAFPSession::longPush( long theLong )
- {
- *(long *)fCBptr = theLong;
- fCBptr += 4;
- fCBSize = fCBptr - fCBStart;
- }
-
- void TAFPSession::arrayPush( char * arrayName, unsigned int arrayLen )
- {
- memcpy( fCBptr, arrayName, arrayLen );
- fCBptr += arrayLen;
- fCBSize = fCBptr - fCBStart;
- }
-
- void TAFPSession::stringPush( char * stringName )
- {
- strcpy( fCBptr, stringName );
- c2pstr( fCBptr );
- fCBSize = strlen(stringName); // temporarily use this since *fCBptr doesn't seem to work
- fCBptr = fCBptr + fCBSize + 1;
- fCBSize = fCBptr - fCBStart;
- }
-
- void TAFPSession::pathPush( Byte PathType, char * Pathname )
- {
- long count;
- char* stringPtr;
-
- *(Byte *)fCBptr = PathType;
- fCBptr += 1;
- stringPtr = fCBptr;
- this->stringPush( Pathname );
-
- count = strlen(Pathname);
- for ( long i = 0; i < count; i++ )
- {
- stringPtr++;
- if (*stringPtr == fPathDelimiter)
- *stringPtr = '\0';
- }
- }
-
- void TAFPSession::passwordPush( char * Password )
- {
- this->passwordCreate( (PassWord *)fCBptr, Password );
- fCBptr += 8;
- fCBSize = fCBptr - fCBStart;
- }
-
- void TAFPSession::passwordCreate( PassWord * password, char * string )
- {
- long length, i;
- char * myPtr;
-
- if (string == NULL)
- {
- length = 0;
- }
- else
- {
- length = strlen( string );
- memcpy( password, string, 8 );
- }
- myPtr = (char *)password + length;
- for (i = length; i < 8; i++)
- {
- *myPtr = '\0';
- myPtr++;
- }
- }
-
- #ifdef __DES__
- void TAFPSession::desPush( PassWord * Key, PassWord * Password, Boolean useNewDES )
- {
- KeysArray aKeyarray;
- EncryptBlk theKey;
- long *myPtr = nil;
- EncryptBlk thePassword;
-
- myPtr = (long *)Key;
- theKey[0] = *myPtr;
- myPtr++;
- theKey[1] = *myPtr;
-
- myPtr = (long *)Password;
- thePassword[0] = *myPtr;
- myPtr++;
- thePassword[1] = *myPtr;
-
- myPtr = (long *)&thePassword;
-
- if (useNewDES)
- LowBitsKeySched( (long *)theKey, aKeyarray );
- else
- HiBitsKeySched( (long *)theKey, aKeyarray );
- Encode( aKeyarray, 8, &myPtr );
-
- this->arrayPush( (char *)thePassword, 8 );
- }
- #else
- void TAFPSession::desPush( PassWord * /* Key */, PassWord * Password, Boolean /* useNewDES */ )
- {
- this->arrayPush( (char *)Password, 8 );
- }
- #endif
-
- void TAFPSession::fileDirPush( short Bitmap, FileDirBlock& theBlock )
- {
- short * longNamePtr;
- short * shortNamePtr;
- char * startPtr;
-
- startPtr = fCBptr;
- if (Bitmap & 0x01)
- this->shortPush( theBlock.Attributes );
- if (Bitmap & 0x02)
- this->longPush( theBlock.ParentDirID );
- if (Bitmap & 0x04)
- this->longPush( theBlock.CreateDate );
- if (Bitmap & 0x08)
- this->longPush( theBlock.ModDate );
- if (Bitmap & 0x10)
- this->longPush( theBlock.BackupDate );
- if (Bitmap & 0x20)
- this->arrayPush( (char *)theBlock.FinderInfo, 32 );
- if (Bitmap & 0x40) {
- longNamePtr = (short *)fCBptr;
- this->shortPush( theBlock.LongName );
- }
- if (Bitmap & 0x80) {
- shortNamePtr = (short *)fCBptr;
- this->shortPush( theBlock.ShortName );
- }
- if (theBlock.FileDirFlag == 0)
- {
- if (Bitmap & 0x100)
- this->longPush( theBlock.File.FileNumber );
- if (Bitmap & 0x200)
- this->longPush( theBlock.File.DataLength );
- if (Bitmap & 0x400)
- this->longPush( theBlock.File.RsrcLength );
- }
- else
- {
- if (Bitmap & 0x100)
- this->longPush( theBlock.Dir.DirID );
- if (Bitmap & 0x200)
- this->shortPush( theBlock.Dir.OffspringCount );
- if (Bitmap & 0x400)
- this->longPush( theBlock.Dir.OwnerID );
- if (Bitmap & 0x800)
- this->longPush( theBlock.Dir.GroupID );
- if (Bitmap & 0x1000)
- this->longPush( theBlock.Dir.AccessRights );
- }
- if (Bitmap & 0x2000)
- {
- this->shortPush( theBlock.ProDOSFileType );
- this->longPush( theBlock.ProDOSAuxType );
- }
- if (Bitmap & 0x40)
- *longNamePtr = fCBptr - startPtr;
- if (Bitmap & 0x80)
- *shortNamePtr = fCBptr - startPtr; // I'm assuming that short and long names are never set simultaneously
- }
-
- void TAFPSession::specPush( short Bitmap, FileDirBlock& theBlock, char * string )
- {
- Spec * theSpec;
-
- theSpec = (Spec *)fCBptr;
- fCBptr += 2;
- // if (*string == '\0') {
- // Bitmap &= 0xFF3F; // Clear shortname and longname bits
- // }
- this->fileDirPush( Bitmap, theBlock );
- if (*string != '\0') {
- this->stringPush( string );
- }
- theSpec->length = fCBptr - (Ptr)theSpec - 2;
- theSpec->filler = 0;
- }
-
- void TAFPSession::alignPush()
- {
- long digit;
-
- if ((digit = (unsigned long)fCBptr) & 1L) { // is fCBptr odd?
- *fCBptr = '\0'; // then move it to a word boundary
- fCBptr++;
- }
- fCBSize = fCBptr - fCBStart;
- }
-
- Ptr TAFPSession::GetReply()
- {
- return fRBStart;
- }
-
- short TAFPSession::SetVolumeID( short VolumeID )
- {
- short oldVolumeID;
-
- oldVolumeID = fVolumeID;
- fVolumeID = VolumeID;
- return oldVolumeID;
- }
-
- short TAFPSession::GetVolumeID()
- {
- return fVolumeID;
- }
-
- long TAFPSession::SetDirID( long DirID )
- {
- long oldDirID;
-
- oldDirID = fDirID;
- fDirID = DirID;
- return oldDirID;
- }
-
- long TAFPSession::GetDirID()
- {
- return fDirID;
- }
-
- short TAFPSession::SetForkID( short OForkRefNum )
- {
- short oldOForkRefNum;
-
- oldOForkRefNum = fOForkRefNum;
- fOForkRefNum = OForkRefNum;
- return oldOForkRefNum;
- }
-
- short TAFPSession::GetForkID()
- {
- return fOForkRefNum;
- }
-
- short TAFPSession::GetIDNum()
- {
- return 0;
- }
-
- short TAFPSession::SetDTRefNum( short DTRefNum )
- {
- short oldDTRefNum;
-
- oldDTRefNum = fDTRefNum;
- fDTRefNum = DTRefNum;
- return oldDTRefNum;
- }
-
- short TAFPSession::GetDTRefNum()
- {
- return fDTRefNum;
- }
-
- short TAFPSession::SetUserID( short /* UserID */ )
- {
- return 0;
- }
-
- short TAFPSession::GetUserID()
- {
- return 0;
- }
-
- long TAFPSession::SetMapID( long MapID )
- {
- long oldMapID;
-
- oldMapID = fMapID;
- fMapID = MapID;
- return oldMapID;
- }
-
- long TAFPSession::GetMapID()
- {
- return fMapID;
- }
-
- long TAFPSession::SetFileID( long FileID )
- {
- long oldFileID;
-
- oldFileID = fFileID;
- fFileID = FileID;
- return oldFileID;
- }
-
- long TAFPSession::GetFileID()
- {
- return fFileID;
- }
-
- long TAFPSession::GetActCount()
- {
- return fActCount;
- }
-
- long TAFPSession::GetOffset()
- {
- return fOffset;
- }
-
- void TAFPSession::SetAFPVersion( char * version )
- {
- strcpy( fAFPVersion, version );
- }
-
- char * TAFPSession::GetAFPVersion()
- {
- return fAFPVersion;
- }
-
- void TAFPSession::SetPathDelimiter( char delimiter )
- {
- fPathDelimiter = delimiter;
- }
-
- char TAFPSession::GetPathDelimiter()
- {
- return fPathDelimiter;
- }
-
- OSErr TAFPSession::GetSrvrInfo()
- {
- this->Debug(0, "GetSrvrInfo");
- fRBSize = kMaxBufSize;
-
- return DoGetStatus( fRBStart, fRBSize, fafpAddrBlock );
- }
-
-
- OSErr TAFPSession::GetSrvrParms()
- {
- struct commandBuffer {
- Byte command;
- } *cbPtr;
-
- this->Debug(0, "GetSrvrParms");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGetSParms;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::GetSrvrMsg( short MsgType, short MsgBitmap )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short MsgType;
- short MsgBitmap;
- } *cbPtr;
-
- this->Debug(0, "GetSrvrMsg");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGetSrvrMsg;
- cbPtr->MsgType = MsgType;
- cbPtr->MsgBitmap = MsgBitmap;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::LoginGuest()
- {
- this->Debug(0, "LoginGuest");
-
- return this->Login( fAFPVersion, "No User Authent", 0, 0 );
- }
-
- OSErr TAFPSession::LoginCleartxt( char * UserName, char * Password )
- {
- this->Debug(0, "LoginCleartxt");
-
- return this->Login( fAFPVersion, "Cleartxt Passwrd", UserName, Password );
- }
-
- OSErr TAFPSession::LoginRandnum( char * UserName, char * Password )
- {
- short IDNumber;
- char UserAuthInfo[8];
-
- struct replyBuffer {
- short IDNumber;
- char UserAuthInfo[8];
- } * rbPtr;
-
- this->Debug(0, "LoginRandnum");
-
- this->Login( fAFPVersion, "Randnum Exchange", UserName, 0 );
- if ( fErrResult != afpAuthContinue )
- return fErrResult;
-
- rbPtr = (replyBuffer *)fRBStart;
-
- IDNumber = rbPtr->IDNumber;
-
- memcpy( UserAuthInfo, rbPtr->UserAuthInfo, 8 );
-
- return this->LoginCont( IDNumber, UserAuthInfo, Password );
- }
-
- OSErr TAFPSession::Login2Way( char * UserName, char * Password )
- {
- short IDNumber;
- char SrvrAuthInfo[8];
-
- struct replyBuffer {
- short IDNumber;
- char SrvrAuthInfo[8];
- } * rbPtr;
-
- this->Debug(0, "Login2Way");
-
- this->Login( fAFPVersion, "2-Way Randnum exchange", UserName, 0 );
- if ( fErrResult != afpAuthContinue )
- return fErrResult;
-
- rbPtr = (replyBuffer *)fRBStart;
-
- IDNumber = rbPtr->IDNumber;
-
- memcpy( SrvrAuthInfo, rbPtr->SrvrAuthInfo, 8 );
-
- return this->LoginCont2Way( IDNumber, SrvrAuthInfo, Password, "EncodeMe" );
- }
-
- OSErr TAFPSession::LoginCont2Way( short IDNumber,
- char * UserAuthInfo,
- char * Password,
- char * UserRandNum )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short IDNumber;
- char marker;
- } *cbPtr;
-
- PassWord passW;
- PassWord * passWPtr;
- passWPtr = (PassWord *)&passW[0];
-
- this->Debug(0, "LoginCont2Way");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = 10;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpContLogin;
- cbPtr->filler = '\0';
- cbPtr->IDNumber = IDNumber;
-
- fCBptr = &(cbPtr->marker);
-
- this->passwordCreate( passWPtr, Password );
- this->desPush( passWPtr, (PassWord *)UserAuthInfo, true );
- this->passwordCreate( passWPtr, UserRandNum );
- this->arrayPush( (char *)passWPtr, 8 );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::Login( char * AFPVersion,
- char * UAM,
- char * UserName,
- char * Password )
- {
- struct commandBuffer {
- Byte command;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "Login");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = 10;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpLogin;
-
- fCBptr = &(cbPtr->marker);
- stringPush( AFPVersion );
- stringPush( UAM );
-
- stringPush( UserName );
- if (Password != NULL)
- {
- alignPush();
- passwordPush( Password );
- }
-
- return this->DoLogin( fCBStart, fCBSize, fRBStart, fRBSize, fafpAddrBlock );
- }
-
-
- OSErr TAFPSession::LoginCont( short IDNumber,
- char * UserAuthInfo,
- char * Password )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short IDnumber;
- char marker;
- } *cbPtr;
-
- PassWord passX;
- PassWord * passXPtr;
- passXPtr = (PassWord *)&passX[0];
-
- this->Debug(0, "LoginCont");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = 10;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpContLogin;
- cbPtr->filler = '\0';
- cbPtr->IDnumber = IDNumber;
-
- fCBptr = &(cbPtr->marker);
-
- this->passwordCreate( passXPtr, Password );
- this->desPush( passXPtr, (PassWord *)UserAuthInfo, false );
-
- return this->MakeAFPCall();
- }
-
-
- OSErr TAFPSession::Logout()
- {
- this->Debug(0, "Logout");
-
- return this->DoLogout();
- }
-
- OSErr TAFPSession::MapID( long UserID, char FnType )
- {
- struct commandBuffer {
- Byte command;
- Byte subfunction;
- long ID;
- } *cbPtr;
-
- this->Debug(0, "MapID");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpMapID;
- cbPtr->subfunction = FnType;
- cbPtr->ID = UserID;
-
- return( this->MakeAFPCall() );
- }
-
- OSErr TAFPSession::MapName( char * UserName, char FnType )
- {
- struct commandBuffer {
- Byte command;
- Byte subfunction;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "MapName");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpMapName;
- cbPtr->subfunction = FnType;
-
- fCBptr = &(cbPtr->marker);
- this->stringPush( UserName );
-
- this->MakeAFPCall();
-
- fMapID = *(long *)fRBStart;
-
- return fErrResult;
- }
-
- OSErr TAFPSession::ChangePassword( char * UAM,
- char * UserName,
- char * OldPassword,
- char * NewPassword )
- {
- PassWord passX;
- PassWord passY;
- PassWord * passXPtr;
- passXPtr = (PassWord *)&passX[0];
- PassWord * passYPtr;
- passYPtr = (PassWord *)&passY[0];
-
- this->Debug(0, "ChangePassword");
-
- fRBSize = kMaxBufSize;
-
- fCBptr = fCBStart;
- this->bytePush( afpChangePwd );
- this->alignPush();
- this->stringPush( UAM );
- this->alignPush();
- this->stringPush( UserName );
- this->alignPush();
- if ( strcmp( UAM, "Randnum Exchange") == 0 )
- {
- this->passwordCreate( passXPtr, NewPassword );
- this->passwordCreate( passYPtr, OldPassword );
- this->desPush( passXPtr, passYPtr, false );
- this->desPush( passYPtr, passXPtr, false );
- }
- else
- {
- this->passwordPush( OldPassword );
- this->passwordPush( NewPassword );
- }
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::GetUserInfo(
- Byte ThisUserFlag,
- short Bitmap,
- long UserID )
- {
- struct commandBuffer {
- Byte command;
- Byte ThisUserFlag;
- long UserID;
- short Bitmap;
- } *cbPtr;
-
- this->Debug(0, "GetUserInfo");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = 10;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGetUserInfo;
- cbPtr->ThisUserFlag = ThisUserFlag;
- cbPtr->UserID = UserID;
- cbPtr->Bitmap = Bitmap;
-
- return this->MakeAFPCall();
- }
-
-
- /* Volume Calls ----------------------------------------------------------------- */
-
- OSErr TAFPSession::OpenVol( char * VolumeName, char * Password, short Bitmap )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short Bitmap;
- char marker;
- } *cbPtr;
-
- struct replyBuffer {
- short Bitmap;
- short VolumeID;
- } *rbPtr;
-
- this->Debug(0, "OpenVol");
-
- if (Bitmap != 0x20)
- this->OpenVol( VolumeName, Password, 0x20 );
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpOpenVol;
- cbPtr->filler = '\0';
- cbPtr->Bitmap = Bitmap;
-
- fCBptr = &(cbPtr->marker);
- this->stringPush( VolumeName );
- if (Password)
- {
- this->alignPush();
- this->arrayPush( Password, 8 );
- }
-
- this->MakeAFPCall();
-
- rbPtr = (replyBuffer *)fRBStart;
- if ( rbPtr->Bitmap == 0x20 )
- {
- fVolumeID = rbPtr->VolumeID;
- }
-
- return fErrResult;
- }
-
- OSErr TAFPSession::SetVolParms( short VolumeID, short Bitmap, long BackupDate )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- short Bitmap;
- long BackupDate;
- } *cbPtr;
-
- this->Debug(0, "SetVolParms");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpSetVolParms;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->Bitmap = Bitmap;
- cbPtr->BackupDate = BackupDate;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::GetVolParms( short VolumeID, short Bitmap )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- short Bitmap;
- } *cbPtr;
-
- this->Debug(0, "GetVolParms");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGetVolParms;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->Bitmap = Bitmap;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::Flush( short VolumeID )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- } *cbPtr;
-
- this->Debug(0, "Flush");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpFlush;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::CloseVol( short VolumeID )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- } *cbPtr;
-
- this->Debug(0, "CloseVol");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpVolClose;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
-
- return this->MakeAFPCall();
- }
-
-
-
- /* Directory Calls ----------------------------------------------------------- */
-
- OSErr TAFPSession::SetDirParms( short VolumeID,
- long DirID,
- short Bitmap,
- Byte PathType,
- char * Pathname,
- FileDirBlock& theBlock )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- short Bitmap;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "SetDirParms");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpSetDirParms;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
- cbPtr->Bitmap = Bitmap;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
- this->alignPush();
- theBlock.FileDirFlag = 0x8000;
- this->fileDirPush( Bitmap, theBlock );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::OpenDir( short VolumeID,
- long DirID,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "OpenDir");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpOpenDir;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- this->MakeAFPCall();
-
- fDirID = *(long *)fRBStart;
-
- return fErrResult;
- }
-
- OSErr TAFPSession::CloseDir( short VolumeID, long DirID )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- } *cbPtr;
-
- this->Debug(0, "CloseDir");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpDirClose;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::Enumerate( short VolumeID,
- long DirID,
- short FileBitmap,
- short DirBitmap,
- short ReqCount,
- short StartIndex,
- short MaxReplySize,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- short FileBitmap;
- short DirBitmap;
- short ReqCount;
- short StartIndex;
- short MaxReplySize;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "Enumerate");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = MaxReplySize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpEnumerate;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
- cbPtr->FileBitmap = FileBitmap;
- cbPtr->DirBitmap = DirBitmap;
- cbPtr->ReqCount = ReqCount;
- cbPtr->StartIndex = StartIndex;
- cbPtr->MaxReplySize = MaxReplySize;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- return this->MakeAFPCall();
- }
-
-
- OSErr TAFPSession::CreateDir( short VolumeID,
- long DirID,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "CreateDir");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpDirCreate;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- this->MakeAFPCall();
-
- fDirID = *(long *)fRBStart;
-
- return fErrResult;
- }
-
-
-
-
- /* File Calls ----------------------------------------------------------- */
-
- OSErr TAFPSession::SetFileParms( short VolumeID,
- long DirID,
- short Bitmap,
- Byte PathType,
- char * Pathname,
- FileDirBlock& theBlock )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- short Bitmap;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "SetFileParms");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpSetFileParms;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
- cbPtr->Bitmap = Bitmap;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
- this->alignPush();
- theBlock.FileDirFlag = 0;
- this->fileDirPush( Bitmap, theBlock );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::CreateFile( short VolumeID,
- long DirID,
- Byte CreateFlag,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte CreateFlag;
- short VolumeID;
- long DirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "CreateFile");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpFileCreate;
- cbPtr->CreateFlag = CreateFlag;
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
-
- fCBptr = &(cbPtr->marker);
-
- this->pathPush( PathType, Pathname );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::CopyFile( short SVolumeID,
- long SDirID,
- Byte SPathType,
- char * SPathname,
- short DVolumeID,
- long DDirID,
- Byte DPathType,
- char * DPathname,
- Byte NewType,
- char * NewName )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short SrcVolumeID;
- long SrcDirID;
- short DestVolumeID;
- long DestDirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "CopyFile");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpCopyFile;
- cbPtr->filler = '\0';
- cbPtr->SrcVolumeID = SVolumeID;
- cbPtr->SrcDirID = SDirID;
- cbPtr->DestVolumeID = DVolumeID;
- cbPtr->DestDirID = DDirID;
-
- fCBptr = &(cbPtr->marker);
-
- this->pathPush( SPathType, SPathname );
- this->pathPush( DPathType, DPathname );
- this->pathPush( NewType, NewName );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::CreateID( short VolumeID,
- long DirID,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "CreateID");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpCreateID;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- this->MakeAFPCall();
-
- if (!fErrResult)
- {
- fFileID = *(long *)fRBStart;
- }
-
- return fErrResult;
- }
-
- OSErr TAFPSession::DeleteID( short VolumeID,
- long FileID )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long FileID;
- } *cbPtr;
-
- this->Debug(0, "DeleteID");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpDeleteID;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->FileID = FileID;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::ResolveID( short VolumeID,
- long FileID,
- short Bitmap )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long FileID;
- short Bitmap;
- } *cbPtr;
-
- this->Debug(0, "ResolveID");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpResolveID;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->FileID = FileID;
- cbPtr->Bitmap = Bitmap;
-
- return this->MakeAFPCall();
- }
-
-
- OSErr TAFPSession::ExchangeFiles( short VolumeID,
- long SrcDirID,
- long DestDirID,
- Byte SrcPathType,
- char * SrcPathname,
- Byte DestPathType,
- char * DestPathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long SrcDirID;
- long DestDirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "ExchangeFiles");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpExchangeFiles;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->SrcDirID = SrcDirID;
- cbPtr->DestDirID = DestDirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( SrcPathType, SrcPathname );
- this->pathPush( DestPathType, DestPathname );
-
- return this->MakeAFPCall();
- }
-
-
-
-
- /* Directory-File Calls ----------------------------------------------------------- */
-
- OSErr TAFPSession::CatSearch( short VolumeID,
- long ReqMatches,
- CatPositionRec * CatPosition,
- short FileRsItBitmap,
- short DirRsltBitmap,
- short FPFlag,
- short ReqBitmap,
- FileDirBlock& Spec1,
- FileDirBlock& Spec2,
- char * longName )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long ReqMatches;
- long filler2;
- CatPositionRec CatPosition;
- short FileRsItBitmap;
- short DirRsltBitmap;
- short FPFlag;
- short ReqBitmap;
- char marker;
- } *cbPtr;
- CatPositionRec * CatPtr;
- int i;
-
- this->Debug(0, "CatSearch");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpCatSearch;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->ReqMatches = ReqMatches;
- cbPtr->filler2 = 0;
- cbPtr->CatPosition.initialize = CatPosition->initialize;
- for (i = 0; i < 6; i++)
- {
- cbPtr->CatPosition.priv[i] = CatPosition->priv[i];
- }
- cbPtr->FileRsItBitmap = FileRsItBitmap;
- cbPtr->DirRsltBitmap = DirRsltBitmap;
- cbPtr->FPFlag = FPFlag;
- cbPtr->ReqBitmap = ReqBitmap;
- fCBptr = &(cbPtr->marker);
- this->specPush( ReqBitmap, Spec1, longName );
- this->specPush( ReqBitmap, Spec2, "" );
-
- this->MakeAFPCall();
- fActCount = *(long *)(fRBptr + 20);
- CatPtr = (CatPositionRec *)fRBptr;
- CatPosition->initialize = CatPtr->initialize;
- for (i = 0; i < 6; i++)
- {
- CatPosition->priv[i] = CatPtr->priv[i];
- }
- return fErrResult;
- }
-
-
- OSErr TAFPSession::GetFileDirParms( short VolumeID,
- long DirID,
- short FileBitmap,
- short DirBitmap,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- short FileBitmap;
- short DirBitmap;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "GetFileDirParms");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGetFlDrParms;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
- cbPtr->FileBitmap = FileBitmap;
- cbPtr->DirBitmap = DirBitmap;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::SetFileDirParms( short VolumeID,
- long DirID,
- short Bitmap,
- Byte PathType,
- char * Pathname,
- FileDirBlock& theBlock )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- short Bitmap;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "SetFileDirParms");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpSetFlDrParms;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
- cbPtr->Bitmap = Bitmap;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
- this->alignPush();
- this->fileDirPush( Bitmap, theBlock );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::Rename( short VolumeID,
- long DirID,
- Byte PathType,
- char * Pathname,
- Byte NewType,
- char * NewName )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "Rename");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpRename;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
- this->pathPush( NewType, NewName );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::Delete( short VolumeID,
- long DirID,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long DirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "Delete");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpDelete;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::MoveAndRename( short VolumeID,
- long SrcDirID,
- long DestDirID,
- Byte SrcPathType,
- char * SrcPathname,
- Byte DestPathType,
- char * DestPathname,
- Byte NewType,
- char * NewName )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- long SrcDirID;
- long DestDirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "MoveAndRename");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpMove;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
- cbPtr->SrcDirID = SrcDirID;
- cbPtr->DestDirID = DestDirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( SrcPathType, SrcPathname );
- this->pathPush( DestPathType, DestPathname );
- this->pathPush( NewType, NewName );
-
- return this->MakeAFPCall();
- }
-
-
-
- /* Fork Calls ----------------------------------------------------------- */
-
- OSErr TAFPSession::GetForkParms( short OForkRefNum, short Bitmap )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short OForkRefNum;
- short Bitmap;
- } *cbPtr;
-
- this->Debug(0, "GetForkParms");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGetForkParms;
- cbPtr->filler = '\0';
- cbPtr->OForkRefNum = OForkRefNum;
- cbPtr->Bitmap = Bitmap;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::SetForkParms( short OForkRefNum,
- short Bitmap,
- long ForkLength )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short OForkRefNum;
- short Bitmap;
- long ForkLength;
- } *cbPtr;
-
- this->Debug(0, "SetForkParms");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpSetForkParms;
- cbPtr->filler = '\0';
- cbPtr->OForkRefNum = OForkRefNum;
- cbPtr->Bitmap = Bitmap;
- cbPtr->ForkLength = ForkLength;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::OpenFork( Byte RsrcDataFlag,
- short VolumeID,
- long DirID,
- short Bitmap,
- short AccessMode,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte RsrcDataFlag;
- short VolumeID;
- long DirID;
- short Bitmap;
- short AccessMode;
- char marker;
- } *cbPtr;
-
- struct replyBuffer {
- short Bitmap;
- short OForkRefNum;
- } *rbPtr;
-
- this->Debug(0, "OpenFork");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpOpenFork;
- cbPtr->RsrcDataFlag = RsrcDataFlag;
- cbPtr->VolumeID = VolumeID;
- cbPtr->DirID = DirID;
- cbPtr->Bitmap = Bitmap;
- cbPtr->AccessMode = AccessMode;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- this->MakeAFPCall();
-
- rbPtr = (replyBuffer *)fRBStart;
- fOForkRefNum = rbPtr->OForkRefNum;
-
- return fErrResult;
- }
-
- OSErr TAFPSession::Read( short OForkRefNum,
- long Offset,
- long ReqCount,
- Byte NewlineMask,
- Byte NewlineChar,
- char * buffer )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short OForkRefNum;
- long Offset;
- long ReqCount;
- Byte NewlineMask;
- Byte NewlineChar;
- } *cbPtr;
-
- this->Debug(0, "Read");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = 0;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpRead;
- cbPtr->filler = '\0';
- cbPtr->OForkRefNum = OForkRefNum;
- cbPtr->Offset = Offset;
- cbPtr->ReqCount = ReqCount;
- cbPtr->NewlineMask = NewlineMask;
- cbPtr->NewlineChar = NewlineChar;
-
- this->DoCommand( fCBStart, fCBSize, buffer, 0 );
-
- fActCount = cbPtr->ReqCount;
- fOffset = cbPtr->Offset;
-
- return fErrResult;
- }
-
- OSErr TAFPSession::Write( short OForkRefNum,
- long Offset,
- long ReqCount,
- Byte StartEndFlag,
- char * buffer )
- {
- struct commandBuffer {
- Byte command;
- Byte StartEndFlag;
- short OForkRefNum;
- long Offset;
- long ReqCount;
- } *cbPtr;
-
- this->Debug(0, "Write");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = 4;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpWrite;
- cbPtr->StartEndFlag = StartEndFlag;
- cbPtr->OForkRefNum = OForkRefNum;
- cbPtr->Offset = Offset;
- cbPtr->ReqCount = ReqCount;
-
- DoWrite( fCBStart, fCBSize, fRBStart, fRBSize, buffer, 0 );
-
- fActCount = cbPtr->ReqCount;
- fOffset = *(long *)fRBStart;
-
- return fErrResult;
- }
-
- OSErr TAFPSession::FlushFork( short OForkRefNum )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short OForkRefNum;
- } *cbPtr;
-
- this->Debug(0, "FlushFork");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpForkFlush;
- cbPtr->filler = '\0';
- cbPtr->OForkRefNum = OForkRefNum;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::ByteRangeLock( Byte StartEndFlag,
- short OForkRefNum,
- long Offset,
- long Length )
- {
- struct commandBuffer {
- Byte command;
- Byte Flag;
- short OForkRefNum;
- long Offset;
- long Length;
- } *cbPtr;
-
- this->Debug(0, "ByteRangeLock");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = 4;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpByteRangeLock;
- cbPtr->Flag = StartEndFlag;
- cbPtr->OForkRefNum = OForkRefNum;
- cbPtr->Offset = Offset;
- cbPtr->Length = Length;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::CloseFork( short OForkRefNum )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short OForkRefNum;
- } *cbPtr;
-
- this->Debug(0, "CloseFork");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpForkClose;
- cbPtr->filler = '\0';
- cbPtr->OForkRefNum = OForkRefNum;
-
- return this->MakeAFPCall();
- }
-
-
-
- /* Desktop Calls ----------------------------------------------------------- */
-
- OSErr TAFPSession::OpenDT( short VolumeID )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short VolumeID;
- } *cbPtr;
-
- this->Debug(0, "CloseFork");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpDTOpen;
- cbPtr->filler = '\0';
- cbPtr->VolumeID = VolumeID;
-
- this->MakeAFPCall();
-
- fDTRefNum = *(short *)fRBStart;
-
- return fErrResult;
- }
-
- OSErr TAFPSession::CloseDT( short DTRefNum )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- } *cbPtr;
-
- this->Debug(0, "CloseDT");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpDTClose;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::AddIcon( short DTRefNum,
- ResType FileCreator,
- ResType FileType,
- Byte IconType,
- ResType IconTag,
- short BitmapSize,
- Ptr IBitmapPtr )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- long FileCreator;
- long FileType;
- Byte IconType;
- Byte filler2;
- long IconTag;
- short BitmapSize;
- } *cbPtr;
-
- this->Debug(0, "AddIcon");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpAddIcon;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
- cbPtr->FileCreator = FileCreator;
- cbPtr->FileType = FileType;
- cbPtr->IconType = IconType;
- cbPtr->filler2 = '\0';
- cbPtr->IconTag = IconTag;
- cbPtr->BitmapSize = BitmapSize;
-
- return DoWrite( fCBStart, fCBSize, fRBStart, fRBSize, IBitmapPtr, BitmapSize );
- }
-
- OSErr TAFPSession::GetIcon( short DTRefNum,
- ResType FileCreator,
- ResType FileType,
- Byte IconType,
- short Length )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- long FileCreator;
- long FileType;
- Byte IconType;
- Byte filler2;
- short Length;
- } *cbPtr;
-
- this->Debug(0, "GetIcon");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGetIcon;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
- cbPtr->FileCreator = FileCreator;
- cbPtr->FileType = FileType;
- cbPtr->IconType = IconType;
- cbPtr->filler2 = '\0';
- cbPtr->Length = Length;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::GetIconInfo( short DTRefNum,
- ResType FileCreator,
- short IconIndex )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- long FileCreator;
- short IconIndex;
- } *cbPtr;
-
- this->Debug(0, "GetIconInfo");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = 12;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGtIcnInfo;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
- cbPtr->FileCreator = FileCreator;
- cbPtr->IconIndex = IconIndex;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::AddAPPL( short DTRefNum,
- long DirID,
- ResType FileCreator,
- ResType APPLTag,
- short PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- long DirID;
- long FileCreator;
- long APPLTag;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "AddAPPL");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpAddAPPL;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
- cbPtr->DirID = DirID;
- cbPtr->FileCreator = FileCreator;
- cbPtr->APPLTag = APPLTag;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::RemoveAPPL( short DTRefNum,
- long DirID,
- ResType FileCreator,
- short PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- long DirID;
- long FileCreator;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "RemoveAPPL");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMinBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpRmvAPPL;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
- cbPtr->DirID = DirID;
- cbPtr->FileCreator = FileCreator;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::GetAPPL( short DTRefNum,
- ResType FileCreator,
- short APPLIndex,
- short Bitmap )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- long FileCreator;
- short APPLIndex;
- short Bitmap;
- } *cbPtr;
-
- this->Debug(0, "GetAPPL");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGetAPPL;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
- cbPtr->FileCreator = FileCreator;
- cbPtr->APPLIndex = APPLIndex;
- cbPtr->Bitmap = Bitmap;
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::AddComment( short DTRefNum,
- long DirID,
- Byte PathType,
- char * Pathname,
- char * Comment )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- long DirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "AddComment");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpAddCmt;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
- cbPtr->DirID = DirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
- this->alignPush();
- this->stringPush( Comment );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::RemoveComment( short DTRefNum,
- long DirID,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- long DirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "RemoveComment");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpRmvCmt;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
- cbPtr->DirID = DirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- return this->MakeAFPCall();
- }
-
- OSErr TAFPSession::GetComment( short DTRefNum,
- long DirID,
- Byte PathType,
- char * Pathname )
- {
- struct commandBuffer {
- Byte command;
- Byte filler;
- short DTRefNum;
- long DirID;
- char marker;
- } *cbPtr;
-
- this->Debug(0, "GetComment");
-
- fCBSize = sizeof( commandBuffer );
- fRBSize = kMaxBufSize;
- cbPtr = (commandBuffer *)fCBStart;
-
- cbPtr->command = afpGetCmt;
- cbPtr->filler = '\0';
- cbPtr->DTRefNum = DTRefNum;
- cbPtr->DirID = DirID;
-
- fCBptr = &(cbPtr->marker);
- this->pathPush( PathType, Pathname );
-
- return this->MakeAFPCall();
- }
-